home *** CD-ROM | disk | FTP | other *** search
/ Adobe Graphics & Publishing SDK 1996 December / Adobe Graphics & Publishing SDK 1996 December.iso / pc / pm65sdk / sourcecode / c_language / open / windows / myopendl.cpp next >
C/C++ Source or Header  |  1996-09-05  |  3KB  |  101 lines

  1. /*********************************************************************     
  2.     
  3.     Code to support the UI that allows the user to choose and open,
  4.     or even to create a new library file. It also directs the opening
  5.     or creating of the new file.
  6.     
  7. *********************************************************************/
  8.     
  9. #include <windows.h>
  10. #include "pmplugin.h"
  11.  
  12. //=============================================================== defines
  13. //=============================================================== globals
  14. extern PMHandle        ghDLL;
  15.  
  16. /*extern char            szScriptsPath[MAX_PATH];
  17. extern char            szScriptsDisabledPath[MAX_PATH];
  18.  
  19. extern HANDLE        hMainDirectory;
  20. extern HANDLE        hDisplayList;    // the display list
  21. extern long            gSelectedHash;
  22. extern long            gSelectedDisplayI;
  23.   */
  24.  
  25. BOOL    FGetOpenFileName(char *szPName, short cbPSz, char *szSName, short cbSSz ); 
  26.  
  27. //=============================================================== structs
  28.  
  29. //=============================================================== prototypes
  30. UINT    CALLBACK OpenDlgHook( HWND hwnd, UINT msg, WPARAM  wParam, LPARAM  lParam );
  31.  
  32. //=============================================================== functions
  33.  
  34. //-------------------------------------------------------------------
  35. // returns the path of the directory containing the currently selected script.
  36. // if no script is showing, it returns the main scripts directory
  37.  
  38. //-------------------------------------------------------------------
  39. BOOL FGetOpenFileName(char *szPName, short cbPSz, char *szSName, short cbSSz ) 
  40.     {
  41.     char            szFilter[40];
  42.     char            szDTitle[40];
  43.     char            szDefaultExtension[12];
  44.     char            *szPath = NULL;
  45.     short            i;
  46.     DWORD            flags;
  47.     OPENFILENAME    ofn;
  48.     BOOL            fGotName;
  49.  
  50.     // prep the buffers
  51.     szPName[0] = 0;
  52.     szSName[0] = 0;
  53.  
  54.     strcpy(szFilter, "PageMaker Publication (*.p65)!*.p65!PageMaker Template (*.t65)!*.t65.*!!");
  55.  
  56.     // replace the exclamation points in the filter string with 0s
  57.     for ( i = 0; szFilter[i]; i++ )
  58.         if ( szFilter[i] == '!' )
  59.             szFilter[i] = 0;
  60.             
  61.     // get the default extension string
  62.     strcpy (szDefaultExtension, "p65");
  63.  
  64.     // set up the appropriate flags
  65.     flags = OFN_HIDEREADONLY | OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST;
  66.  
  67.     // prep the open file name structure
  68.     ZeroMemory( &ofn, sizeof(ofn) );
  69.     ofn.lStructSize = sizeof(ofn);
  70.     ofn.hwndOwner = GetActiveWindow();
  71.     ofn.hInstance = ghDLL;
  72.     ofn.lpstrFilter = szFilter;
  73.     ofn.nFilterIndex = 1;
  74.     ofn.lpstrFile = szPName;
  75.     ofn.nMaxFile = cbPSz;
  76.     ofn.lpstrFileTitle = szSName;
  77.     ofn.nMaxFileTitle = cbSSz;
  78.     ofn.lpstrTitle = "My Open Dialog Box";
  79.     ofn.Flags = flags;// | OFN_ENABLEHOOK;
  80.     ofn.lpstrDefExt = szDefaultExtension;
  81. //    ofn.lpfnHook = ScriptFileDlgHook;
  82.  
  83.     // if this is the new dialog, find out the path we should use
  84.     fGotName = GetOpenFileName( &ofn );
  85.  
  86.     // leave with the right answer
  87.     return fGotName;
  88.     } 
  89.  
  90. //-------------------------------------------------------------------
  91. //typedef UINT (APIENTRY *LPOFNHOOKPROC) (HWND, UINT, WPARAM, LPARAM);
  92. UINT CALLBACK OpenDlgHook( HWND hwnd, UINT msg, WPARAM  wParam, LPARAM  lParam )
  93.     {     
  94.     // if we are setting up, then center the dialog
  95. //    if ( msg == WM_INITDIALOG )
  96. //        CenterWindow( hwnd, CW_CenterPos|CW_CenterParent );
  97.  
  98.     // we never actually overtake a message, so just always return false
  99.     return FALSE;
  100.     }
  101.